package file;

import java.io.File;
import java.io.FileFilter;

/**
 * 有条件的获取一个目录中的部分子项
 */
public class ListFilesDemo2 {
    public static void main(String[] args) {
        FileFilter filter = new FileFilter() {
            public boolean accept(File file) {
                String name = file.getName();
                //return name.indexOf("s")>=0;
                return name.contains("s");
            }
        };
        File dir = new File("./src/file");
        if (dir.isDirectory()){
            /*
               File重写的：File[] listFiles(FileFilter filter)
               该方法会返回当前File对象表示的目录中所有满足给定的过滤器要求的子项。
               listFiles方法内部会讲这个目录中每一个子项所对应的的File对象逐一传给过滤器
               filter的accept方法，并最终将accept方法返回为true的所有子项返回
             */
            File[] subs = dir.listFiles(filter);
            System.out.println("共："+subs.length+"个子项");
            for (int i=0;i<subs.length;i++){
                System.out.println(subs[i].getName());
            }
        }
    }
}
